package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.bean.EmailBean;
import com.project.bean.UserBean;

import java.time.LocalDate;

public interface IEmailService {

    /**
     * 添加邮件
     * @param emailBean 邮件信息对象 {主题、邮件内容、附件地址}
     * @param idArray 收件人id数组
     * @param strNameArray 收件人姓名数组   Arrays.toString() .subString()
     * 说明：
     * 1. 将收件人姓名数组 拼接成 字符串 封装到邮件对象
     * 2. 添加邮件记录（时间） 同时封装新增邮件id
     * 3. 根据收件人id集合、新增邮件id，批量添加收件箱记录（状态默认 未阅读）
     */
    void add(EmailBean emailBean, int[] idArray, String[] strNameArray);

    /**
     * 分页动态查询邮件
     * @param pageNum 页码
     * @param userId 登录员工的id （发件人）
     * @param title 主题
     * @param startTim 起始日期
     * @param endTim 结束日期
     * @return  PageInfo<EmailBean> 邮件分页对象 { 邮件id、主题、发送日期}
     * 说明：
     * 1. 动态分页查询（有效）邮箱记录
     * 2. 登录员工id为固定条件
     * 3. 主题、起始日期、结束日期为动态条件
     */
    PageInfo<EmailBean> cutPageByItem(Integer pageNum, Integer userId, String title,
                                      LocalDate startTim, LocalDate endTim);

    /**
     * 根据邮件id查询邮件信息
     * @param emailId 邮件id
     * @return 邮件信息 {主题、邮件内容、附件地址}
     */
    EmailBean findById(Integer emailId);

    /**
     * 发件箱删除邮件
     * @param emailId 邮件id
     * 说明：根据邮件d 修改邮件状态为 无效
     */
    void del(Integer emailId);

}
